﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace produccion.clases
{
    public class CLSLISPREP:ObservableObject
    {
        MDOgeneral mod = new MDOgeneral();

        #region propiedades

        string codlis_pre, nomlis_pre, aplicaa_pre, tiplis_pre;

        public string CODLIS_PRE
        {
            get { return codlis_pre; }
            set { codlis_pre = value;
            RaisePropertyChangedEvent("CODLIS_PRE");
            }
        }

        public string NOMLIS_PRE
        {
            get { return nomlis_pre; }
            set { nomlis_pre = value;
            RaisePropertyChangedEvent("NOMLIS_PRE");
            }
        }
        
        public string APLICAA_PRE
        {
            get { return aplicaa_pre; }
            set { aplicaa_pre = value;
            RaisePropertyChangedEvent("APLICAA_PRE");
            }
        }

        public string TIPLIS_PRE
        {
            get { return tiplis_pre; }
            set { tiplis_pre = value;
            RaisePropertyChangedEvent("TIPLIS_PRE");
            }
        }

        #endregion

        #region metodos
        public void LimpiarValores()
        {
            CODLIS_PRE = "";
            NOMLIS_PRE = "";
            APLICAA_PRE = "";
            TIPLIS_PRE = "";
        }

        public Boolean ExisteLisPre()
        {
            try
            {
                string query = "select codlis_pre from lisprep where codlis_pre='" + CODLIS_PRE + "'";
                if (mod.consulta(query).Rows.Count > 0)
                {
                    return true;
                }
                return false;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public DataTable ConsultarTodas()
        {
            try
            {
                string query = "select codlis_pre , nomlis_pre , APLICAA_PRE, TIPLIS_PRE from lisprep order by codlis_pre";
                DataTable dt = mod.consulta(query);
                if (dt.Rows.Count.Equals(0))
                {
                    query = "select '' as codlis_pre, '' as nomlis_pre, '' as aplicaa_pre, '' as tiplis_pre from lisprep";
                    dt = mod.consulta(query);
                    return dt;
                }
                return dt;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
      
        public DataTable Consultar()
        {
            try
            {
                string query = "select codlis_pre, nomlis_pre, aplicaa_pre, tiplis_pre from lisprep where codlis_pre='" + CODLIS_PRE + "'";
                DataTable dt = mod.consulta(query);
                if (dt.Rows.Count > 0)
                {
                    NOMLIS_PRE = dt.Rows[0][1].ToString();
                    APLICAA_PRE = dt.Rows[0][2].ToString();
                    TIPLIS_PRE = dt.Rows[0][3].ToString();
                }
                else
                {
                    NOMLIS_PRE = "";
                    APLICAA_PRE = "";
                    TIPLIS_PRE = "";
                }
                return dt;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public int Eliminar()
        {
            try
            {
                string query = "delete from lisprep where codlis_pre='" + CODLIS_PRE + "'";
                return mod.comando(query);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public Boolean ExisteLisPreMaetarP()
        {
            try
            {
                string query = "select codlis_tar from maetarp where codlis_tar='" + CODLIS_PRE + "'";
                if (mod.consulta(query).Rows.Count > 0)
                {
                    return true;
                }
                return false;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public int Actualizar()
        {
            try
            {
                string query = "update lisprep set nomlis_pre='" + NOMLIS_PRE + "', aplicaa_pre='" + APLICAA_PRE + "', tiplis_pre='" + TIPLIS_PRE + "'  where codlis_pre='" + CODLIS_PRE + "'";
                return mod.comando(query);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public int Insertar()
        {
            try
            {
                string query = "insert into lisprep (codlis_pre, nomlis_pre, aplicaa_pre, tiplis_pre) values ('" + CODLIS_PRE + "','" + NOMLIS_PRE + "','" + APLICAA_PRE + "','" + TIPLIS_PRE + "')";
                return mod.comando(query);
            }
            catch (Exception ex)
            {
                throw ex;
            }

        }

        public DataTable Buscar()
        {
            try
            {
                string query = "select codlis_pre as Codigo, nomlis_pre as Nombre from lisprep where nomlis_pre like '%" + NOMLIS_PRE + "%' order by nomlis_pre asc";
                return mod.consulta(query);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        //Adicionado por David Arango 20-06-12: Lista de precios utilizada en ComboBox para selecciones
        public List<CLSLISPREP> listarPre()
        {
            try
            {
                string query = "select CODLIS_PRE,NOMLIS_PRE from LISPREP where TIPLIS_PRE='P'";
                DataTable val = mod.consulta(query);
                List<CLSLISPREP> lisPrecio = new List<CLSLISPREP>();
                foreach (DataRow r in val.Rows)
                {
                    lisPrecio.Add(new CLSLISPREP { CODLIS_PRE = r["CODLIS_PRE"].ToString(), NOMLIS_PRE = r["NOMLIS_PRE"].ToString() });
                }
                return lisPrecio;
            }
            catch (Exception e) { throw e; }
        }

        //Adicionado por David Arango 20-06-12: Lista de precios utilizada en ComboBox para selecciones
        public List<CLSLISPREP> listarPrecios()
        {
            try
            {
                string query = "select CODLIS_PRE,NOMLIS_PRE, APLICAA_PRE, TIPLIS_PRE from LISPREP";
                DataTable val = mod.consulta(query);
                List<CLSLISPREP> lisPrecio = new List<CLSLISPREP>();
                foreach (DataRow r in val.Rows)
                {
                    lisPrecio.Add(new CLSLISPREP 
                            {   CODLIS_PRE = r["CODLIS_PRE"].ToString(), 
                                NOMLIS_PRE = r["NOMLIS_PRE"].ToString(),
                                APLICAA_PRE = r["APLICAA_PRE"].ToString(),
                                TIPLIS_PRE = r["TIPLIS_PRE"].ToString()
                            });
                }
                return lisPrecio;
            }
            catch (Exception e) { throw e; }
        }

        #endregion

    }
}
